This page last changed on Nov 29, 2004 by jcarreira.

WebWork2中的ActionChainResult可以将多个活动组合起来按照定义号的顺序或工作流程执行. 使用ActionChainResult作为活动的结果类型, 如下:

<!-- simple chain example to an action in same namespace ->
<result name="success" type="chain">
    <param name="actionName">Bar</param>
</result>
<!- example of chaining to an action in a different namespace/package -->
<result name="success" type="chain">
	<param name="actionName">viewFoo</param>
	<param name="namespace">/foo</param>
</result>

同一个名空间(或缺省名空间"")中的另一个活动将在该活动后执行(参见XW:Configuration). 页可以使用可选的"namespace"参数指定不同名空间中的活动. Request中的原始(original)参数和ValueStack被传递到链上, 同时被链接的活动也被传递到值栈中. 这就允许链接的活动可以在值栈中访问之前活动的属性, 这些属性页可以在链的最后结果(如JSP或Velocity页面)中使用.

如果需要将前一个活动的属性复制到当前活动中, 可以使用ChainingInterceptor(参见XW:Interceptors), 它会将值栈中所有对象的属性全部复制到当前目标对象中.

活动链的一般用途是提供查找表(例如关于状态的下拉列表). 由于活动被放置在值栈中, 因此它们的属性页可以在视图中使用. 也可以通过在先是页面中使用action标签执行一个活动来完成这一目的. 在WebWork 1.x中活动链通常链接到RedirectAction以便在处理后重定向到另一个页面(WebWork2 提供了redirect结果类型).

当你向要封装一些复用代码时, 这一方法很有用… 在WebWork 2中, 如果某个复用代码被大量使用, 可以把它编写为截取器, 或者使用活动链. 如果你需要设置并使用某些属性, 应该使用活动.
Document generated by Confluence on Dec 14, 2004 16:36